[アップデート] myApplication でカスタムタグを使ったリソースの追加と、タグ同期機能によるリソースの自動追加が出来るようになりました
いわさです。
先日マネジメントコンソールにアクセスしたところ、次のようなバナーが表示されました。
myApplications now supports automatic addition of resources using existing tags.
Use your existing tags to automatically add resources to your application.
アップデートアナウンスはまだ出ていないようですが、要は既存のタグを使って myApplications のアプリケーションにリソース追加をしたり、追加したリソースへのタグ付け(何の?)が出来る機能のようです。
こちらドキュメントの変更箇所を比較しながらアップデート内容が見えてきましたので内容をまとめて紹介します!
結論としては、awsApplication タグに縛られずにタグ運用が出来るようになり、従来よりも myApplications が使いやすくなってます!
リソース追加がカスタムタグで可能に
大きくは2つのアップデートがあります。
一点目はリソース追加がそのままカスタムタグで行えるようになりました。
従来は次のように Resource Explorer を使ってリソース検索を行い、必要なリソースを手動で追加していく仕組みでした。
今回のアップデートで次のようにリソース追加方法が選択出来るようになりました。
これは...!
任意のタグの key/value ペアを指定することで、それらを全て対象リソースとして識別してくれるようになったようです。
また、その指定したタグが付与されたリソースが今後も増えるごとに自動でアプリケーションとして識別されて追加までしてくれるそうです。こいつぁすげえ。
仕組みとしては指定したカスタムタグのリソースに myApplication 管理用のタグが自動付与されるようになります。実際に試してみましょう。
まず、タグを自動付与する関係で、myApplications が使う IAM ロールを用意しておく必要があります。
公式ドキュメントによると次の ResourceGroupandTagEditorFullAccess が付与されていれば良いらしいのですが、これだけだと私は失敗しました。
ロールの情報は次の Service Catalog ドキュメントを参考に作成しましょう。
あとはリソース追加設定を行うのですが、先程作成した IAM ロールの他にタグキーと値を指定します。
そこでリソースプレビューボタンを押すことでどのようなリソースがターゲットになるかプレビュー出来ます。
こんな感じです。割愛していますが事前に CloudFormation で VPC、EC2、ALB などの一式をデプロイしており、上記カスタムタグを付与しています。
このまま作成といきたいところですが、グループライフサイクルイベントというものを有効化する必要がありまして、こちららのチェックを ON にしてから処理を続行します。
今回のこの機能を使うと指定したカスタムタグを追跡してくれるようになるのですが、そのために内部的には EventBridge ルールで全リソースのタグ変更を関して自動で拾ってアプリケーションに追加してくれるようになります。
次の「Managed.ResourceGroups.TagChangeEvents」というマネージドルールです。
これでアプリケーションは作成されたリソースが自動で追加されるのですが、このままだと今回は失敗しました。
次のようにタグ付けに失敗したというエラーメッセージが表示されています。
リソースタグ付けエラーを確認してみるとリソースに対してタグ付けをする権限が無かったようです。
マネージドポリシーの問題かドキュメントが誤っているのか、明らかに権限が不足していたので、今回は AdministratorAccess を追加して検証しました。本番運用にあたってはもう少し良い感じのマネージドポリシーが登場するはずです。そうじゃないと機能しないので...
カスタムタグを追跡し、タグ同期してくれるように
カスタムタグでアプリケーションにリソースを自動追加出来るようになっただけではなく、継続的に既存リソースや新規リソースのタグ監視をしてくれるのが今回のアップデートのもうひとつのポイントです。ポイントというかメインな気もします。
まず、検証用に用意した CloudFormation スタックとは別で次のように S3 バケットを新規作成しましょう。
その際にタグを付与します。アプリケーションで対象として指定したカスタムタグのキーと値です。
作成後、アプリケーションの「リソースを管理」から管理リソースの一覧を確認してみます。
そうすると、先程手動で作成した S3 バケットがなんと myApplications アプリケーションのリソースとして自動登録されています。これは良いですね。
S3 バケット側のタグ情報を確認してみると、作成時に付与したタグ以外に「awsApplication」タグが自動で付与されています。myApplications が GLE をフックして設定してくれているようです。なるほど。
さいごに
本日は myApplications でカスタムタグを使ったリソースの追加と、タグ同期機能によるリソースの自動追加が出来るようになったので試してみました。
これまではアプリケーションへのリソース追加を行うためには手動でリソース検索して追加するか、あるいはアプリケーション ARN を把握して上で全リソースに awsApplication タグを設定する必要がありちょっと運用が厳しいなぁと思っていましたがこのアップデートすごく良いと思いますね。
サービス名とかチーム名とか、独自のタグと値でリソース抽出から自動追加までしてくれるの最高です。